In modern "enterprise" computing environments, that is, computer systems for use in an office environment in a company, a number of personal computers, workstations, mini-computers and mainframe computers, along with other devices such as large mass storage subsystems, network printers and interfaces to the public telephony system, may be interconnected to provide an integrated environment in which information may be shared among users in the company. Typically, users may be performing a variety of operations, including order receipt, manufacturing, shipping, billing, inventory control, and other operations, in which sharing of data on a real-time basis may provide a significant advantage over, for example, maintaining separate records and attempting to later reconcile them. The users may operate on their own data, which they may maintain on the computers they are using, or alternatively they may share data through the large mass storage subsystems.
One particular type of processing often performed in enterprise computing environments is termed "transaction" processing. In transaction processing, information relating to transactions for particular records is processed so as to update the records, preferably on a "real-time" or nearly real-time basis. Real- or near real-time updating of the records ensures that the records will continually contain information that is up-to-date so that, if the record is accessed shortly after the transaction, the record will reflect the proper information including the update for the transaction. For example, in a banking context, if a bank customer wishes to initiate a transaction to withdraw cash from his or her bank account at, for example an automatic teller machine, the record for the bank account will need to be accessed to verify that the customer has sufficient funds in the account to cover the withdrawal and, if so, updated to reflect the withdrawal. Preferably, the access to the account record to verify that the customer has sufficient funds in the account will be performed on a real- or near-real-time basis so that the customer is not unduly delayed in receiving the cash. In addition, preferably the access to the account record to update the account to reflect the withdrawal will also be performed on a real- or near-real-time basis so that, if the customer wishes to initiate a subsequent transaction with respect to the account immediately or shortly after the first transaction, such as checking the account balance or initiating another withdrawal, the account information in the record will correctly reflect the account balance after the first transaction.
Several problem arise in connection with systems for performing transaction processing. Typically in such systems, a number of "hosts" through which the transactions are entered are accessing the mass storage subsystems, on which the record information is stored, at a relatively rapid rate. In addition, generally the mass storage subsystems maintain locking mechanisms which limit access to the storage devices which are used in such systems. As a result, while one host has a storage device locked, other hosts cannot obtain access to the storage device to retrieve information from or store information on the storage device, which can delay processing of transactions therewith.